package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface GoodsDao {
    //查询商品分页信息列表
    List<Goods> selectPage(@Param("page") Integer page, @Param("rows") Integer rows, @Param("codeOrName") String codeOrName, @Param("goodsTypeId") List<Integer> goodsTypeId);
    //修改商品
    Boolean update(Goods goods);
    //新增商品
    Boolean insert(Goods goods);
    //查询全部商品
    List<Goods> selectAllGoods();
    //根据id查询商品
    Goods selectGoodsById(Integer goodsId);
    //根据id删除商品信息
    Boolean deleteGoodsById(Integer goodsId);
    //查询没有库存的商品
    List<Goods> getNoInventoryQuantity(@Param("page") Integer page, @Param("rows") Integer rows, @Param("nameOrCode") String nameOrCode, @Param("inventoryQuantity") int inventoryQuantity);
    //查询全部有库存的商品
    List<Goods> getHasInventoryQuantity(@Param("page") Integer page, @Param("rows") Integer rows,@Param("nameOrCode") String nameOrCode);
    //添加库存、修改数量或成本价
    Boolean saveStock(@Param("goodsId") Integer goodsId, @Param("inventoryQuantity") Integer inventoryQuantity,@Param("purchasingPrice") double purchasingPrice);
    //删除库存（要判断商品状态 入库、有进货和销售单据的不能删除）
    Boolean deleteStock(Integer goodsId);
    //查询所有 当前库存量 小于 库存下限的商品信息
    List<Goods> selectListAlarm();
}
